package cn.tedu.net.collection.oop;

public class Test1_Constructor {
    //在公共类中创建入口函数
    public static void main(String[] args) {
      //创建Person类对象进行测试
       Person p1=new Person();//每一次new(实例化)对象时都会自动调用构造方法
       Person p2=new Person("大头儿子");
       Person p3=new Person("小头爸爸",99,"地球上");
        //查看p对象的属性值
        System.out.println(p1.getName());//null
        System.out.println(p1.getAge());//0
        System.out.println(p1.getAddress());//null
        //使用p对象的study()
        p1.study();
        System.out.println(p3.getName());//小头爸爸
        System.out.println(p3.getAge());//99
        System.out.println(p3.getAddress());//地球上
        p3.study();

    }
}
//创建person类描述人这一类型
class Person{
    //定义属性成员变量
    private String name;//姓名
    private int age;//年龄
    private String address;//地址
    //3.定义方法
    public void study(){
        System.out.println("又是美好的一周呢~~");
    }
    //创建含参构造方法
    public Person(String s) {
        System.out.println("我是Person类的含参构造方法:"+s);
    }

    public Person(String n, int a, String addr) {
        name=n;
        age=a;
        address=addr;
        System.out.println("我是Person类的全参构造:"+n+a+addr);
    }
    /*默认存在无参构造方法,当new Person()会自动触发无参构造
    构造方法也存在重载的现象
    在同一个类中存在方法名相同且参数列表不同的方法*/
    public Person() {
        System.out.println("我是Person类的无参构造");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }


}